package com.superarai.util.common;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CheckUtil {

	/**
	 * 文字列が空かnullだった場合、trueを返す。
	 */
	public static boolean isEmpty(String str) {
		return str == null || str.isEmpty();
	}

	/**
	 * 文字列が空かnullではない場合、trueを返す。
	 */
	public static boolean isNotEmpty(String str) {
		return !isEmpty(str);
	}

	/**
	 * 文字列が空だった場合、trueを返す。
	 */
	public static boolean isBlank(String str) {
		return str != null && str.isEmpty();
	}

	/**
	 * 文字列が空ではない場合、trueを返す。
	 */
	public static boolean isNotBlank(String str) {
		return !isBlank(str);
	}

	/**
	 * 引数がすべてnullだった場合trueを返す。
	 */
	public static boolean isNullAll(Object...objects) {
		for(Object o : objects) {
			if(o != null) return false;
		}
		return true;
	}

	/**
	 * 引数がすべてnullではない場合trueを返す。
	 */
	public static boolean isNotNullAll(Object...objects) {
		for(Object o : objects) {
			if(o == null) return false;
		}
		return true;
	}

    private static final String regex = "^([-]?|[0-9]*)[0-9]+([.][0-9]+$|[0-9]*$)";
    static final Pattern pattern = Pattern.compile(regex);

    /**
     * 数値の文字列だった場合 true
     * @param str
     * @return
     */
    public static boolean isNumber(String str) {
        if(isEmpty(str)) return false;

        Matcher matcher = pattern.matcher(str);
        if(matcher.find()) {
            return true;
        }
        return false;
    }

    /**
     * 数値の文字列だった場合 false
     * @param str
     * @return
     */
    public static boolean isNotNumber(String str) {
        return !isNumber(str);
    }
}
